\chapter{Követelményelemzés}

	A rendszer célja, hogy modellezze és végigvezesse űrlapok létrehozásának és
kitöltésének a folyamatát. A rendszer működése a valóságban is előforduló
űrlapok használatát követi, miszerint egy központi szervezet űrlapok
segítségével hasonló szerkezetű adatokat kér be egy nagy számú célközönségtől.
Az űrlapok kitöltése történhet nagy számban egy megadott rövid idő alatt, ahogyan
 a példaként megvalósított szociális támogatási kérelem\cite{szoctam} esetében,
 vagy történhet elszórtan hosszabb idő alatt, például költözés miatti
 adatmódosítás az önkormányzatokban. Az előbbi esetben az űrlapot kiadó
 szervezet határozza meg, hogy mikor (pontosabban milyen
időintervallumon belül) történik meg az űrlapok kitöltése és feldolgozása. A
második esetben azonban a szervezet által nyújtott lehetőséggel,
szolgáltatással akkor él a felhasználó, mikor igény támad rá. Az első eset
annyiban különbözik a másodiktól, hogy az űrlapok feldolgozásához szükség
lehet aggregált adatokra is a kitöltött űrlapok halmazának egészéről. A
korábban említett szociális támogatási kérelem esetében az egyedi kérelmezőnek
adott támogatás mértéke függ a többi kérelmező által beadott adatoktól, hiszen
a rendelkezésre álló költségkeretet a kérelmezők szükségleteinek arányában kell
szétosztani közöttük.

Ennek megfelelően a rendszer kliens-szerver architektúrát követ, ahol a szerver
által kiadott űrlapokat kitöltve visszaküldik a kliensek, hogy a szerveren
megtörténhessen a központi feldolgozás.
	
	\section{Dokumentumfolyam}

		Az űrlap kezelő rendszer működése két elkülönülő folyamatra bontható. Az első
		az űrlap előállítását végzi, azaz a tárgyterületi tudásmodell és az űrlap
		modell alapján létrehozza a kitölthető űrlapot. A tudásmodellt egy tudásmérnök
		készíti a tárgyterület modellezésével, az űrlap modell pedig ezen tudásmodell
		fogalmait használva definiál egy űrlapot. A tudásmodell és az űrlap modell
		részletes követelményeivel \aref{ch5}. fejezetben foglalkozok részletesebben.
		
		A rendszer másik fontos feladata az űrlap kitöltés levezérlése, ami az űrlap
		megjelenítéséből és a kitöltött adatok feldolgozásából áll. Az űrlap kimenete
		a felhasználó által beírt adatok egy tetszőleges ábrázolása, amely
		elméletileg tetszőleges formátumban tárolható. 
		
		A \ref{fig:DocFlow}. ábrán látható a rendszer folyamatai és a rendszer által
		használt dokumentumok közötti kapcsolat. Az űrlap kitöltés és az űrlapok
		által létrehozott dokumentumok közötti kapcsolat kétirányú, mert a rendszer
		lehetővé teszi, hogy bizonyos űrlapok megköveteljék más űrlap előzetes
		kitöltését, és a kitöltött adatok elérését. 
	
	\begin{figure}[!ht]
		\centering
		\includegraphics[width=100mm, keepaspectratio]{figures/ch2/docflow.png}
		\caption{Dokumentumok és folyamatok kapcsolata} 
		\label{fig:DocFlow}
	\end{figure}

\subsection{Űrlap generálás folyamata}

Egy űrlap általános esetben a mezői szerint modellezhető, azaz egy űrlap nem
más mint kitöltendő mezők egy rendezett sorozata. Az űrlap generálás folyamata
pedig a ezen mezők halmazát hivatott meghatározni a megjelenítési
paramétereikkel együtt.

A kitöltendő mezők általános modellje tartalmazza a mezők számosságát, ami
meghatározza, hogy hány értéket kell megadnia a felhasználónak egy mezőben,
hogy az űrlap kitöltés érvényes legyen. Minden mezőhöz a rendszer hozzárendel
egy típust is, amely a beírható érvényes értékek halmazát szűkíti.

A mezők megjelenítési paraméterei az egyes mezők feliratait és sorrendezését
tartalmazza. A felirat egy nyelvfüggő és olvasható megnevezése a mezőnek, ez
az egyetlen módja, hogy a felhasználó felé jelezze a rendszer a mező célját, és
a várt adat jellegét. A mezők sorrendezése határozza meg az egyes mezők
elhelyezkedését a felhasználó számára megjelenített űrlapon és fontos szerepet
játszik annak érdekében, hogy a felhasználó számára áttekinthető és logikus
legyen az űrlap felépítése.

\subsection{Űrlap kitöltés folyamata}

Az űrlap kitöltés folyamatának felhasználói esetei a \ref{fig:usecase}. ábrán
láthatóak. A kitöltési folyamat részeként ábrázoltam a kitölthető űrlapok
keresését is.

\begin{figure}[!ht]
  \centering
  \includegraphics[width=150mm, keepaspectratio]{figures/ch2/umlusc.png}
  \caption{Az űrlap kitöltés felhasználói esetei}
  \label{fig:usecase}
\end{figure}

Az űrlap kitöltés folyamata a felhasználó szemszögéből a következőképpen néz
ki: a folyamatot a felhasználó indítja azzal, hogy igény merül fel a számára
egy olyan szolgáltatás igénybevételére, amelynek elérését a szolgáltató egy űrlap
kitöltésén keresztül teszi lehetővé. A szolgáltatás lehet egy egyetem által
adott szociális támogatás, vagy adatmódosítás a helyi önkormányzatnál.

Az űrlap kezelő rendszer szerepe az igény felmerülésével kezdődik, mikor a
felhasználó önmagát azonosítva belép a rendszerbe. A rendszer képes segítséget
nyújtani a felhasználó számára a kitöltendő űrlap megnyitásában keresési
funkció biztosításával, így a felhasználó kulcsszavakkal megadja, hogy milyen
szervezet melyik szolgáltatását szeretné igénybe venni, a rendszer pedig
kilistázza a lehetőségeket.

A megfelelő űrlapot a felhasználó meg tudja nyitni, és megkezdheti a kitöltést.
A kitöltés végeztével a beírt adatok egy megfelelő formátumú kimeneti
dokumentumként állnak elő, amit a felhasználó menthet a rendszerben. A
rendszerben mentésre kerülő kitöltött űrlapokat az űrlapot kiadó szervezet
megkapja, és megkezdheti a feldolgozást.

Az űrlapot kiadó szervezet az űrlap kezelő rendszer szempontjából egy másik
felhasználóként jelenik meg, aki számára ugyanazon funkciók érhetőek el. Az
általa ajánlott szolgáltatást űrlapon keresztül igénylő felhasználók által
kitöltött és elmentett űrlapokat a rendszer képes megkeresni és listázni. 

Amint azt az előző szakaszban is említettem, a rendszer képes kezelni olyan
űrlapokat is, melyeknek más űrlap kitöltése előfeltétele. Ezt úgy éri el, hogy
mikor a felhasználó kitölthető űrlapokat keres, csak azokat a lehetőségeket
listázza, melyeknek rendelkezésre áll megfelelő előzőleg kitöltött űrlap
kimeneti dokumentuma.
